// import parseTime, formatTime and set to filter
export { parseTime, formatTime } from '@/utils'

/**
 * Show plural label if time is plural number
 * @param {number} time
 * @param {string} label
 * @return {string}
 */
function pluralize(time, label) {
  if (time === 1) {
    return time + label
  }
  return time + label + 's'
}

/**
 * @param {number} time
 */
export function timeAgo(time) {
  const between = Date.now() / 1000 - Number(time)
  if (between < 3600) {
    return pluralize(~~(between / 60), ' minute')
  } else if (between < 86400) {
    return pluralize(~~(between / 3600), ' hour')
  } else {
    return pluralize(~~(between / 86400), ' day')
  }
}

/**
 * Number formatting
 * like 10000 => 10k
 * @param {number} num
 * @param {number} digits
 */
export function numberFormatter(num, digits) {
  const si = [
    { value: 1E18, symbol: 'E' },
    { value: 1E15, symbol: 'P' },
    { value: 1E12, symbol: 'T' },
    { value: 1E9, symbol: 'G' },
    { value: 1E6, symbol: 'M' },
    { value: 1E3, symbol: 'k' }
  ]
  for (let i = 0; i < si.length; i++) {
    if (num >= si[i].value) {
      return (num / si[i].value + 0.1).toFixed(digits).replace(/\.0+$|(\.[0-9]*[1-9])0+$/, '$1') + si[i].symbol
    }
  }
  return num.toString()
}

/**
 * 10000 => "10,000"
 * @param {number} num
 */
export function toThousandFilter(num) {
  return (+num || 0).toString().replace(/^-?\d+/g, m => m.replace(/(?=(?!\b)(\d{3})+$)/g, ','))
}

/**
 * Upper case first char
 * @param {String} string
 */
export function uppercaseFirst(string) {
  return string.charAt(0).toUpperCase() + string.slice(1)
}
const M = {
  photo: {
    'ID_CARD_FRONT': '身份证正面',
    'ID_CARD_SIDE': '身份证反面',
    'DRIVING_LICENSE_FRONT': '车辆行驶证主页',
    'DRIVING_LICENSE_OTHER_FRONT': '车辆行驶证副页正面',
    'DRIVING_LICENSE_OTHER_SIDE': '车辆行驶证副页反面',
    'REG_PAGE1': '车辆登记证书第1页',
    'REG_PAGE2': '车辆登记证书第2页',
    'REG_PAGE3': '车辆登记证书第3页',
    'CAR_LEFT_FRONT': '车辆左前45度角',
    'CAR_LEFT_SIDE': '车辆右后45度角',
    'DRIVE_FRONT': '主驾前侧',
    'DRIVE_SIDE': '主驾后侧',
    'DRIVE_FRONT_OTHER': '副驾前侧',
    'DRIVE_SIDE_OTHER': '副驾后侧',
    'GLOBE_LEFT_FRONT': '左前大灯',
    'GLOBE_RIGHT_FRONT': '右前大灯',
    'GLOBE_LEFT_SIDE': '左尾灯',
    'SHOE_LEFT_FRONT': '左前轮胎',
    'HUB_LEFT_FRONT': '左前轮毂',
    'SHOE_RIGHT_FRONT': '右前轮胎',
    'HUB_RIGHT_FRONT': '右前轮毂',
    'SHOE_LEFT_SIDE': '左后轮胎',
    'HUB_LEFT_SIDE': '左后轮毂',
    'SHOE_RIGHT_SIDE': '右后轮胎',
    'HUB_RIGHT_SIDE': '右后轮毂',
    'APP_CAR_MAIN': '车辆正前方',
    'APP_RIGHT_FRONT': '右前四十五度角',
    'APP_CAR_RIGHT': '车辆右侧车身',
    'APP_CAR_OTHER': '车辆正后方',
    'APP_LEFT_SIDE': '左后四十五度角',
    'APP_CAR_LEFT': '车辆左侧身',
    'DOOR_LEFT_FRONT': '左前车门',
    'DOOR_LEFT_SIDE': '左后车门',
    'DOOR_RIGHT_FRONT': '右前车门',
    'DOOR_RIGHT_SIDE': '右后车门',
    'GLASS_FRONT_FRAME_NO': '前挡风玻璃车架号',
    'FRAME_PLATE': '车架铭牌',
    'BX_IMG': '保险单',
    'CTRL_MIDDLE': '中控台',
    'PANEL': '仪表盘',
    'CHAIR_FRONT': '前排座椅',
    'CHAIR_SIDE': '后排座椅',
    'SCREEN_MIDDLE': '中控屏幕',
    'PANNEL_MIDDEL': '中控面板',
    'STEERING_WHEEL': '方向盘',
    'BAFFLE': '档把',
    'SKYLIGHT': '天窗',
    'KEY': '车钥匙',
    'CTRL_OTHER': '其它',
    'ROOM_BOX': '后备箱',
    'BOX_PLATE': '后备胎底板',
    'ROOM_MOTOR': '发动机舱',
    'ROOM_BOX_PLATE_AXIS': '底盘传动轴',
    'ROOM_SYS_BOTTOM': '传动系统油底壳',
    'STRINGER_FRONT': '前纵梁',
    'STRINGER_SIDE': '后纵梁',
    'ROOM_OTHER': '其他',
    'PV': '车辆视频'
  },
  carColor: {
    '01': '白',
    '02': '银',
    '03': '灰',
    '04': '黑',
    '05': '红',
    '06': '棕',
    '07': '蓝',
    '08': '紫',
    '09': '黄',
    '10': '绿',
    '00': '其他'
  },
  use: {
    '01': '非营运',
    '02': '营运',
    '03': '营转非',
    '04': '租赁',
    '05': '教练'
  },
  paifang: {
    '01': '国四',
    '02': '国五',
    '03': '国六'
  },
  ABC: {
    A: '优',
    B: '良',
    C: '差'
  },
  activity: {
    '0': '未开始',
    '1': '进行中',
    '2': '已暂停',
    '3': '已结束',
    '-1': '已取消'
  }
}
export function filterPhoto(string) {
  return M['photo'][string]
}
export function filtercarColor(string) {
  return M['carColor'][string]
}
export function filteruse(string) {
  return M['use'][string]
}
export function filtePaifang(string) {
  return M['paifang'][string]
}
export function filteABC(string) {
  return M['ABC'][string]
}
export function filteActivity(string) {
  return M['activity'][string]
}
export function filteridCardNo(string) {
  return string && string.replace(/(\w{4})\w*(\w{4})/, '$1******$2')
}
export function filterMoblie(string) {
  return string && string.replace(/(\w{3})\w*(\w{4})/, '$1****$2')
}
export function filterBrandCode(string) {
  return string && string.replace(/(\w{4})\w*(\w{4})/, '$1*******$2')
}
// 101-待付款,102-待检测,103-检测中,104-已检测,105-订单取消
export function filterOrderStatus(string) {
  return { 101: '待付款', 102: '待检测', 103: '检测中', 104: '已检测', 105: '订单取消' }[string]
}
export function fliterpackageType(string) {
  return { 101: '事故排查检测', 102: '重要部件检测', 103: '全面检测' }[string]
}

